diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
index d2b4820..c731bfb 100644
--- a/drivers/serial/Makefile
+++ b/drivers/serial/Makefile
@@ -36,7 +36,7 @@
 COBJS-$(CONFIG_SYS_NS16550) += ns16550.o
 COBJS-$(CONFIG_DRIVER_S3C4510_UART) += s3c4510b_uart.o
 COBJS-$(CONFIG_S3C64XX) += s3c64xx.o
-COBJS-$(CONFIG_S5PC1XX) += serial_s5pc1xx.o
+COBJS-$(CONFIG_S5PC1XX) += serial_s5p.o
 COBJS-$(CONFIG_SYS_NS16550_SERIAL) += serial.o
 COBJS-$(CONFIG_CLPS7111_SERIAL) += serial_clps7111.o
 COBJS-$(CONFIG_IMX_SERIAL) += serial_imx.o
diff --git a/drivers/serial/serial_s5pc1xx.c b/drivers/serial/serial_s5p.c
similarity index 82%
rename from drivers/serial/serial_s5pc1xx.c
rename to drivers/serial/serial_s5p.c
index 8da0c86..9747db3 100644
--- a/drivers/serial/serial_s5pc1xx.c
+++ b/drivers/serial/serial_s5p.c
@@ -27,18 +27,18 @@
 #include <asm/arch/clk.h>
 #include <serial.h>
 
-static inline struct s5pc1xx_uart *s5pc1xx_get_base_uart(int dev_index)
+static inline struct s5p_uart *s5p_get_base_uart(int dev_index)
 {
-	u32 offset = dev_index * sizeof(struct s5pc1xx_uart);
+	u32 offset = dev_index * sizeof(struct s5p_uart);
 
 	if (cpu_is_s5pc100())
-		return (struct s5pc1xx_uart *)(S5PC100_UART_BASE + offset);
+		return (struct s5p_uart *)(S5PC100_UART_BASE + offset);
 	else
-		return (struct s5pc1xx_uart *)(S5PC110_UART_BASE + offset);
+		return (struct s5p_uart *)(S5PC110_UART_BASE + offset);
 }
 
 /*
- * The coefficient, used to calculate the baudrate on S5PC1XX UARTs is
+ * The coefficient, used to calculate the baudrate on S5P UARTs is
  * calculated as
  * C = UBRDIV * 16 + number_of_set_bits_in_UDIVSLOT
  * however, section 31.6.11 of the datasheet doesn't recomment using 1 for 1,
@@ -66,7 +66,7 @@
 void serial_setbrg_dev(const int dev_index)
 {
 	DECLARE_GLOBAL_DATA_PTR;
-	struct s5pc1xx_uart *const uart = s5pc1xx_get_base_uart(dev_index);
+	struct s5p_uart *const uart = s5p_get_base_uart(dev_index);
 	u32 pclk = get_pclk();
 	u32 baudrate = gd->baudrate;
 	u32 val;
@@ -83,7 +83,7 @@
  */
 int serial_init_dev(const int dev_index)
 {
-	struct s5pc1xx_uart *const uart = s5pc1xx_get_base_uart(dev_index);
+	struct s5p_uart *const uart = s5p_get_base_uart(dev_index);
 
 	/* reset and enable FIFOs, set triggers to the maximum */
 	writel(0, &uart->ufcon);
@@ -100,7 +100,7 @@
 
 static int serial_err_check(const int dev_index, int op)
 {
-	struct s5pc1xx_uart *const uart = s5pc1xx_get_base_uart(dev_index);
+	struct s5p_uart *const uart = s5p_get_base_uart(dev_index);
 	unsigned int mask;
 
 	/*
@@ -125,7 +125,7 @@
  */
 int serial_getc_dev(const int dev_index)
 {
-	struct s5pc1xx_uart *const uart = s5pc1xx_get_base_uart(dev_index);
+	struct s5p_uart *const uart = s5p_get_base_uart(dev_index);
 
 	/* wait for character to arrive */
 	while (!(readl(&uart->utrstat) & 0x1)) {
@@ -141,7 +141,7 @@
  */
 void serial_putc_dev(const char c, const int dev_index)
 {
-	struct s5pc1xx_uart *const uart = s5pc1xx_get_base_uart(dev_index);
+	struct s5p_uart *const uart = s5p_get_base_uart(dev_index);
 
 	/* wait for room in the tx FIFO */
 	while (!(readl(&uart->utrstat) & 0x2)) {
@@ -161,7 +161,7 @@
  */
 int serial_tstc_dev(const int dev_index)
 {
-	struct s5pc1xx_uart *const uart = s5pc1xx_get_base_uart(dev_index);
+	struct s5p_uart *const uart = s5p_get_base_uart(dev_index);
 
 	return (int)(readl(&uart->utrstat) & 0x1);
 }
@@ -193,14 +193,14 @@
 	s5p_serial##port##_puts, }
 
 DECLARE_S5P_SERIAL_FUNCTIONS(0);
-struct serial_device s5pc1xx_serial0_device =
+struct serial_device s5p_serial0_device =
 	INIT_S5P_SERIAL_STRUCTURE(0, "s5pser0", "S5PUART0");
 DECLARE_S5P_SERIAL_FUNCTIONS(1);
-struct serial_device s5pc1xx_serial1_device =
+struct serial_device s5p_serial1_device =
 	INIT_S5P_SERIAL_STRUCTURE(1, "s5pser1", "S5PUART1");
 DECLARE_S5P_SERIAL_FUNCTIONS(2);
-struct serial_device s5pc1xx_serial2_device =
+struct serial_device s5p_serial2_device =
 	INIT_S5P_SERIAL_STRUCTURE(2, "s5pser2", "S5PUART2");
 DECLARE_S5P_SERIAL_FUNCTIONS(3);
-struct serial_device s5pc1xx_serial3_device =
+struct serial_device s5p_serial3_device =
 	INIT_S5P_SERIAL_STRUCTURE(3, "s5pser3", "S5PUART3");
